package com.cleaningcloud.cld.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.cleaningcloud.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.cleaningcloud.common.core.annotation.Excel;

/**
 * 合同对象 cld_contract
 * 
 * @author cleaningcloud
 * @date 2024-10-06
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class CldContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 合同ID */
    private Long contractId;

    /** 项目ID */
    @Excel(name = "项目ID")
    private Long projectId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date signDate;

    /** 付款方式(1现金2对公转账3电汇4微信) */
    @Excel(name = "付款方式(1现金2对公转账3电汇4微信)")
    private Long paymentType;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractMoney;

    /** 人均单价(元) */
    @Excel(name = "人均单价(元)")
    private BigDecimal contractStaffMonty;

    /** 合同人数 */
    @Excel(name = "合同人数")
    private Long contractNumber;

    /** 合同开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /** 合同结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同结束日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /** 合同扫描件 */
    @Excel(name = "合同扫描件")
    private String contractAttrs;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long createId;

    /** 创建人名称 */
    @Excel(name = "创建人名称")
    private String createName;

    /** 备注是否关闭 */
    @Excel(name = "备注是否关闭")
    private Long flag;

    /** 合同状态(1履约2到期3终止) */
    @Excel(name = "合同状态(1履约2到期3终止)")
    private Long contractStatus;

    /** 归档状态(1已归档2未归档) */
    @Excel(name = "归档状态(1已归档2未归档)")
    private Long contractFile;

    /** 合同终止附件 */
    @Excel(name = "合同终止附件")
    private String contractFileAttrs;

    /** 合同终止原因 */
    @Excel(name = "合同终止原因")
    private String contractEndReason;

    /** 合同终止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同终止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date contractEndTime;

    /** 发票类型(1普通2专用) */
    @Excel(name = "发票类型(1普通2专用)")
    private Long invoiceType;

    /** 结算日 */
    @Excel(name = "结算日")
    private Long settlementDay;

    /** 公司税号 */
    @Excel(name = "公司税号")
    private String paragraph;

    /** 开户行 */
    @Excel(name = "开户行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 负责人ID */
    @Excel(name = "负责人ID")
    private Long userId;

    // 负责人联系电话
    private String userPhone;

    /** 对方签订人 */
    @Excel(name = "对方签订人")
    private String otherPartyUser;

    /** 合同备注 */
    @Excel(name = "合同备注")
    private String contractDesc;

    // 项目名称
    private String projectName;

}
